﻿// Copyright © .NET Foundation and Contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace PInvoke
{
    using System;

    /// <content>
    /// Contains the Keyboard scan code constants.
    /// </content>
    public partial class User32
    {
        /// <summary>
        /// General keyboard scan code constants on the same order that it can be found on <see cref="VirtualKey" /> constants.
        /// </summary>
        /// <remarks>Scan codes are device-dependant values, these are general values used by most keyboards.</remarks>
        public enum ScanCode : ushort
        {
            NONAME = 0,
            ESCAPE = 1,
            KEY_1 = 2,
            KEY_2 = 3,
            KEY_3 = 4,
            KEY_4 = 5,
            KEY_5 = 6,
            KEY_6 = 7,
            KEY_7 = 8,
            KEY_8 = 9,
            KEY_9 = 10,
            KEY_0 = 11,
            OEM_MINUS = 12,
            OEM_PLUS = 13,
            BACK = 14,
            TAB = 15,
            KEY_Q = 16,
            MEDIA_PREV_TRACK = 16,
            KEY_W = 17,
            KEY_E = 18,
            KEY_R = 19,
            KEY_T = 20,
            KEY_Y = 21,
            KEY_U = 22,
            KEY_I = 23,
            KEY_O = 24,
            KEY_P = 25,
            MEDIA_NEXT_TRACK = 25,
            OEM_4 = 26,
            OEM_6 = 27,
            RETURN = 28,
            LCONTROL = 29,
            RCONTROL = 29,
            CONTROL = 29,
            KEY_A = 30,
            KEY_S = 31,
            KEY_D = 32,
            VOLUME_MUTE = 32,
            KEY_F = 33,
            LAUNCH_APP2 = 33,
            KEY_G = 34,
            MEDIA_PLAY_PAUSE = 34,
            KEY_H = 35,
            KEY_J = 36,
            MEDIA_STOP = 36,
            KEY_K = 37,
            KEY_L = 38,
            OEM_1 = 39,
            OEM_7 = 40,
            OEM_3 = 41,
            LSHIFT = 42,
            SHIFT = 42,
            OEM_5 = 43,
            KEY_Z = 44,
            KEY_X = 45,
            KEY_C = 46,
            VOLUME_DOWN = 46,
            KEY_V = 47,
            KEY_B = 48,
            VOLUME_UP = 48,
            KEY_N = 49,
            KEY_M = 50,
            BROWSER_HOME = 50,
            OEM_COMMA = 51,
            OEM_PERIOD = 52,
            OEM_2 = 53,
            DIVIDE = 53,
            RSHIFT = 54,
            MULTIPLY = 55,
            LMENU = 56,
            RMENU = 56,
            MENU = 56,
            SPACE = 57,
            CAPITAL = 58,
            F1 = 59,
            F2 = 60,
            F3 = 61,
            F4 = 62,
            F5 = 63,
            F6 = 64,
            F7 = 65,
            F8 = 66,
            F9 = 67,
            F10 = 68,
            NUMLOCK = 69,
            SCROLL = 70,
            CANCEL = 70,
            HOME = 71,
            NUMPAD7 = 71,
            UP = 72,
            NUMPAD8 = 72,
            PRIOR = 73,
            NUMPAD9 = 73,
            SUBTRACT = 74,
            LEFT = 75,
            NUMPAD4 = 75,
            CLEAR = 76,
            NUMPAD5 = 76,
            RIGHT = 77,
            NUMPAD6 = 77,
            ADD = 78,
            END = 79,
            NUMPAD1 = 79,
            DOWN = 80,
            NUMPAD2 = 80,
            NEXT = 81,
            NUMPAD3 = 81,
            INSERT = 82,
            NUMPAD0 = 82,
            DELETE = 83,
            DECIMAL = 83,
            SNAPSHOT = 84,
            OEM_102 = 86,
            F11 = 87,
            F12 = 88,
            LWIN = 91,
            RWIN = 92,
            APPS = 93,
            EREOF = 93,
            SLEEP = 95,
            ZOOM = 98,
            HELP = 99,
            F13 = 100,
            F14 = 101,
            BROWSER_SEARCH = 101,
            F15 = 102,
            BROWSER_FAVORITES = 102,
            F16 = 103,
            BROWSER_REFRESH = 103,
            F17 = 104,
            BROWSER_STOP = 104,
            F18 = 105,
            BROWSER_FORWARD = 105,
            F19 = 106,
            BROWSER_BACK = 106,
            F20 = 107,
            LAUNCH_APP1 = 107,
            F21 = 108,
            LAUNCH_MAIL = 108,
            F22 = 109,
            LAUNCH_MEDIA_SELECT = 109,
            F23 = 110,
            F24 = 118,
        }
    }
}
